package cn.net.yugu.doraemon.track.enums;

/**
 * @author wanghongli
 * @date 2024/5/29 22:28
 * @description BaseEnum
 **/
public interface BaseEnum<T> {
    int getValue();
    String getName();

    static <T extends BaseEnum<T>> T getEnum(Class<T> enumClass, Integer value) {
        if (value == null) {
            return null;
        }
        T[] enumConstants = enumClass.getEnumConstants();
        for (T enumConstant : enumConstants) {
            if (enumConstant.getValue() == value) {
                return enumConstant;
            }
        }
        return null;
    }
}
